//045. 三角形数，五边形数和六边形数
//        三角形数，五边形数和六边形数可分别由以下公式生成：
//        三角形数：Tn=n(n+1)/2 1,3,6,10,15⋯
//        五边形数：Pn=n(3n−1)/2 1,5,12,22,35⋯
//        六边形数：Hn=n(2n−1) 1,6,15,28,45⋯
//        可以论证 T285=P165=H143=40755，求 40755 之后的下一个同时为五边形数和六边形数的三角形数。
//        答案：1533776805

//六边形数一定是三角形数
//反函数
//五边形数(1+sqrt(24*x+1))%6==0

public class Week045 {
    static final int start = 143;

    static boolean check(long cur) {
        if ((1 + Math.sqrt(24 * cur + 1)) % 6 == 0) return true;
        return false;
    }

    static void run() {
        for (long i = start + 1; true; ++i) {
            long cur = i * (2 * i - 1);
            if (check(cur)) {
                System.out.println(i);
                System.out.println(cur);
                return;
            }
        }

    }

    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        run();
        System.out.println("\n程序运行时间：" + (System.currentTimeMillis() - startTime) + "ms.");
    }
}
